Fehler FAQ

Aus MoodleDocs
Wechseln zu:Navigation, Suche

Fehler: Database connection failed

Wenn Sie die Fehlermeldung "database connection failed" oder "could not connect to the database you specified" erhalten, dann hat das verschiedene Ursachen und es gibt entsprechende Lösungen.

  • Ihr Datenbank-Server inst nicht richtig installiert oder läuft nicht. Um dies z.B. für den MySQL-Datenbank-Server zu prüfen, geben Sie auf der Kommandozeile folgendes ein:
  $telnet database_host_name 3306
Sie sollten eine Meldung bekommen, in der u.a. die Version des MySQL-Servers angezeigt wird.
  • Wenn Sie 2 Moodle-Instanzen auf verschiedenen Ports laufen haben, verwenden Sie in der Moodle-Konfigurationsdatei config.php in der Variablen $CFG->dbhost die IP-Adresse des Servers (nicht "localhost") und den Port:
  $CFG->dbhost = 127.0.0.1:3308.
  • Prüfen Sie, ob Sie die PHP-Erweiterungen für MySQL (oder PostgresSQL) installiert haben.
  • Sie haben keine Moodle-Datenbank und/oder keinen Moodle-Datenbanknutzer angelegt mit den passenden Rechten für den Zugriff auf die Moodle-Datenbank.
  • Die Moodle-Datenbank-Konfiguration in der Moodle-Konfigurationsdatei config.php ist nicht korrekt. Verwenden Sie phpMyAdmin, um die Konfiguration Ihrer Moodle-datenbank und des Moodle-Datenbanknutzers vorzunehemn und zu prüfen.
  • Stellen Sie sicher, dass im Moodle-Datenbanknamen und im Passwort keine Sonderzeichen verwendet werden.
  • Sie verwenden eine MySQL-Version 4.1 oder neuer, aber die PHP-Erweiterungen für MySQL sind älter als 4.1 (siehe PHP-Informationen). In diesem Fall funktioniert der Algorithmus zum Verschlüsseln von Passwörtern nicht. Verwenden Sie folgenden MySQL-Befehl, um die Passwörter auf das alte Verschlüsselungsformat zurückzusetzen:
mysql>SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('password');
mysql>SET PASSWORD FOR 'moodleuser'@'localhost' = OLD_PASSWORD('password');
Am besten Sie aktualisieren Ihre PHP-Erweiterungen für MySQL. Siehe MySQL Document für weitere Informationen.
  • Sie verwenden Fedora Core 3 oder ein anderes Linux-System mit installiertem und aktiviertem SELinux. Siehe SELinux deaktivieren. Wenn Sie SELinux nicht deaktivieren wollen, dann müssen Sie httpd-Prozessen erlauben, Netzwerk-Verbindungen aufzubauen:
setsebool httpd_can_network_connect true

  • Mac OSX: Wenn Sie MySQL unter Mac OSX laufen haben, dann probieren Sie, in der Moodle-Konfigurationsdatei config.php die Variable $CFG->dbhost' von localhost auf 127.0.0.1 zu ändern.

Siehe auch: MySQL-Seite Typische Fehler.

Ich kann mich nicht anmelden: Fehler "Please verify that the current setting of session.save_path is correct"

Dieser Fehler tritt auf, wenn PHP Probleme beim Speichern der Session-Dateien hat. Dann könnten auch folgende Fehlermeldungen auf Ihrem Bildschirm oder in Ihren Log-Dateien erscheinen:

Warning: Unknown: open(some-path/sessions/sess_acbf942a7399db3489ffa910e35d5242, O_RDWR)
failed: Permission denied (13) in Unknown on line 0
Warning: Unknown(): open(some-path/sessions/sess_acbf942a7399db3489ffa910e35d5242, O_RDWR) 
failed: No space left on device (28) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current 
setting of session.save_path is correct (some-path/sessions) in Unknown on line 0 

Dann ergänzen Sie (temporär) in der Moodle-Konfigurationsdatei config.php folgende Zeile:

$CFG->dbsessions = true;

Datenbank-Sessions können Ihre MySQL-Datenbank überlasten, sie eignen sich nicht für verteilte Umgebungen. Wenn die obige Ergänzung das Anmelde-Problem löst, dann sollten Sie folgendes tun:

  • Zugriffsrechte prüfen: Der Webserver-Nutzer muss auf den session.save_path zugreifen können. Das können Sie mit folgendem Befehl prüfen:
chown -R apache:apache moodledata/sessions
Hierbei setzen wir voraus, dass der Webserver-Nutzer apache heißt.
  • Setzen Sie die Rechte für dieses Verzeichnis zunächst auf 0777 (jeder darf lesen, schreiben und ausführen):
chmod -R 0777 some-path/sessions
Wenn dies das Problem löst, schränken Si die Zugriffsrechte ein (Empfehlung: 700).

Fehler: A server error that affects your login session was detected

Wenn Sie Ihren Browser neu starten und danach das Anmelden in Moodle nicht mehr funktioniert, dann lesen Sie diesen Diskussionsbeitrag im Kurs Using Moodle auf moodle.org (englisch).

Wenn Ihnen das auf der Community-Seite moodle.org passiert, dann kann es sein, dass Moodle gerade aktualisiert wird. Versuchen Sie es später noch einmal oder melden Sie das Problem im Bug-Tracker.

Fehler: Failed opening required '/web/moodle/lib/setup.php'

In der Moodle-Konfigurationsdatei config.php muss die Eintragung für die Variable $CFG->dirroot der vollständige Server-Pfad des Verzeichnisses sein, in dem Ihr Moodle installiert ist.

Manchmal werden dort fälschlicherweise relative Pfade eingetragen.

Fatal error: Parse error, call to undefined function: get_string()

Wenn Sie solche Fehlermeldungen sehen:

Parse error: parse error, unexpected T_VARIABLE in /path/to/moodle/config.php on line 94 
Fatal error: Call to undefined function: get_string() in /path/to/moodle/mod/resource/lib.php on line 11

dann haben Sie vermutlich in der Moodle-Konfigurationsdatei config.php ein Semikolon oder schließende Anführungszeichen vergessen (vor Zeile 94).

Eine andere Möglichkeit könnte sein, dass Sie die Konfigurationsdatei in einem Textverarbeitungsprogramm, wie z.B. MS Word editiert haben und als HTMl-Seite gespeichert haben. Verwenden Sie stattdessen einen einfachen Text-Editor, wie z.B. Notepad.

Wenn Sie zusätzliche Plugins verwenden, prüfen Sie, ob die zugehörigen PHP-Skripte evtl. Abkürzungen wie <? ?> anstelle von <?php ?> verwenden. Informieren Sie in diesem Fall die zuständigen Entwickler/innen über das Problem. Ersetzen Sie dann die Abkürzungen durch die normalen Tags oder ergänzen Sie in der PHP-Konfigurationsdatei php.ini folgende Zeile:

short_open_tag = On

Im Kernpaket von Moodle werden Sie normalerweise keine Abkürzungen finden. Falls dies doch der Fall sein sollte, erstellen Sie bitte einen Eintrag im Bug-Tracker.

Wenn ich auf die Admin-Seite gehe, steht dort, dass ich das dirroot-Verzeichnis ändern soll!

Wenn Sie folgende Fehlermeldung sehen:

Please fix your settings in config.php: 
You have: $CFG->dirroot = "/home/users/fred/public_html/moodle"; 
but it should be: $CFG->dirroot = "";

dann ist das ein kleiner Fehler, der auf manchen Servern auftritt. Das Problem liegt an der Art, wie Moodle Fehler behandelt, nicht am Verzeichnis selbst.

Zur Behebung des Problems, gehen Sie in der Datei moodle/admin/index.php zur Zeile 66:

if ($dirroot != $CFG->dirroot) {

und ändern Sie diese wie folgt:

if (!empty($dirroot) and $dirroot != $CFG->dirroot) {

Warum bekomme ich ständig die Fehlermeldung "headers already sent"?

Wenn Sie solche Fehlermeldungen sehen:

Warning: Cannot add header information - headers already sent by 
(output started at /webs/moodle/config.php:87) in /webs/moodle/lib/moodlelib.php 
on line 1322 
Warning: Cannot add header information - headers already sent by 
(output started at /webs/moodle/config.php:87) in /webs/moodle/lib/moodlelib.php 
on line 1323 
Warning: Cannot add header information - headers already sent by 
(output started at /webs/moodle/config.php:87) in /webs/moodle/login/index.php 
on line 54

dann haben Sie Leerzeichen oder Leerzeilen nach dem ?> in Ihrer Moodle-Konfigurationsdatei config.php file. Manche Text-Editoren fügen diese Leerzeichen / Leerzeilen automatisch ein, z.B. Notepad unter Windows. Sie müssen diese Leerzeichen / Leerzeilen löschen.

Fehler: "500:Internal Server Error"

Es gibt verschiedene Ursachen für diesen Fehler. Prüfen Sie als erstes die Fehler-Logdateien Ihres Webservers, die evtl. detailliertere Informationen enthalten.

Ursachen könnten sein: 1. Syntaxfehler: Ihre .htaccess oder httpd.conf Konfigurationsdateien enthalten einen Syntaxfehler. Wie Sie Befehle schreiben müssen hängt davon ab, welche Konfigurationsdatei Sie verwenden, siehe auch differs diese Dokumentation. Sie können Konfigurationsfehler in Ihren Apache-Konfigurationsdateien mit folgendem Befehl testen:

#apachectl configtest

2. PHPsuexec: Ihr Server unterstützt keine .htaccess Dateien, wenn Sie PHPsuexec verwenden. Das ist ein Apache-Modul, das zur Erhöhung der Sicherheit verwendet wird. In diesem Fall:

  • können Sie auch diesen Fehler sehen: 403: Forbidden error
  • läuft der Webserver unter Ihrem eigenen Nutzernamen und alle Dateien haben die Rechte 755. Prüfen Sie, ob diese Rechte für Ihr Moodle-Verzeichnis gesetzt sind und ändern Sie das bei Bedarf:
#chmod -R 755 moodle
  • verwenden Sie statt einer .htaccess eine PHP-Konfigurationsdatei php.ini im Moodle-Verzeichnis. Wenn Sie z.B. eine Fehlermeldung zum Speicherbedarf (memory exhausted error) erhalten, wenn Ihr Server die Datei moodle/admin/cron.php aufruft, dann erstellen Sie eine php.ini Datei im Verezeichnis moodle/admin und erhöhen Sie in dieser Datei den Wert der PHP-Variablen memory_limit. Wenn Sie php5 verwenden, prüfen Sie, ob Ihr Server solche benutzerdefinierten ##php.ini Dateien unterstützt. Die Syntax in einer php.ini Datei unterscheidet sich von der Syntax in einer .htaccess, z.B.:
php_value memory_limit 128M  (.htaccess)
memory_limit = 128M          (php.ini)

3. Incompatible directive: Sie verwenden einen Befehl in der Datei .htaccess oder httpd.conf, der nicht kompatibel mit Ihrer Webserver-Version ist. Lesen Sie die Webserver-Dokumentation.

Fehler: "403: Forbidden"

Prüfen Sie Ihre Webserver-Konfiguration. Siehe auch Abschnitt "500:Internal Server Error" weiter oben.

Fehler: Fatal error allowed memory size exhausted. Wie erhöhe ich den PHP-Speicher?

Wenn Sie folgende Fehlermeldung sehen:

Fatal error: Allowed memory size of 67108864 bytes exhausted 
(tried to allocate xx bytes) in /var/www/moodle/yyyy.php

dann bedeutet das, dass der Wert Ihrer PHP-Variablen memory_limit zu klein ist. In der Fehlermeldung oben ist der erlaubte Wert 67108864 Bytes / 1024 = 65536 KB. 65536 KB / 1024 = 64 MB. In diesem Fall müssen Sie den wert der Variablen erhöhen. Dafür gibt es zwei Möglichkeiten:

  • Wenden Sie sich an Ihren Moodle-Server-Administrator. Wenn auf Ihrem Server .htaccess Dateien erlaubt sind, dann ergänzen Sie in dieser Datei folgendes (falls eine solche Datei im Moodle-Verzeichnis nicht existiert, dann erstellen Sie diese):

ergänzen Sie in dieser Datei files. If yours does, add the following line to your .htaccess file (or create one in the moodle directory if it does not already exist):

php_value memory_limit <value>M
Beispiel: php_value memory_limit 40M
  • Wenn Sie Shell-Zugriff auf den Moodle-Server haben, bearbeiten Sie die PHP-Konfigurationsdatei php.ini wie folgt:
memory_limit <value>M
Beispiel: memory_limit 40M
  • In aktuellen Moodle-Versionen kann ein Wert von 512M nötig sein, damit alle Funktionalitäten korrekt funktionieren (insbesondere benötigen das Sichern und Wiederherstellen von Kursen viel Speicher). Es ist sinnvoll, den Speicherverbrauch zu beobachten, wenn Sie so große Werte verwenden.

Beachten Sie, dass Sie den Webserver neu starten müssen, wenn Sie Änderungen in der php.ini Datei vornehemn

Alternativ können Sie die Variable mit folgendem Befehl deaktivieren:

 memory_limit 0

Fehler: "Your session has timed out. Please login again." oder "The page isn't redirecting properly" oder "This webpage has a redirect loop"

Ergreifen Sie eine/alle folgenden Maßnahmen:

  • Löschen Sie manuell die Cookies in Ihrem Browser und schließen Sie den Browser. Rufen Sie dann Ihre Moodle-Site erneut im Browser auf.
  • Prüfen Sie, ob der Webserver-Nutzer Schreibrechte im Verzeichnis moodledata/sessions hat. Wenn Sie auf Moodle zugreifen, sollte in diesem Verzeichnis eine neue Datei angelegt werden.
  • Wenn Sie zwei Versionen von Moodle auf demselben Server betreiben, setzen Sie ein Cookie-Prefix auf der Seite Einstellungen > Webserver-Administration > Server > Sitzungsinformation.

Weitere Lösungsvorschläge finden Sie im Diskussionsbeitrag Your session has timed out. Please login again im Kurs Using Moodle auf moodle.org:

Fehler während des Installationsprozesses: ERR_TOO_MANY_REDIRECTS

  • Sie müssen die Datei moodle/admin/index.php mit einem Texteditor, z.B. Notepad++ bearbeiten. Verwenden Sie nicht MS-Word!
  • Suchen Sie nach dieser Zeile:
redirect("index.php?sessionstarted=1&lang=$CFG->lang");
  • Kommentieren Sie diese Zeile aus, indem Sie ihr // voranstellen:
//redirect("index.php?sessionstarted=1&lang=$CFG->lang");
  • Versuchen Sie, die Installation im Browser fortzusetzen.

Fehler während des Installationsprozesses: Maximum execution time of 30 seconds exceeded in...

  • Ihr Server braucht zu lange, um das Installationsskript auszuführen.
  • Drücken Sie die F5-Taste (Refresh) bis der Installationsprozess beendet ist.
  • Oder bearbeiten Sie die PHP-Konfigurationsdatei php.ini auf Ihrem Server mit einem Texteditor wie z.B. Notepad++. Verwenden Sie nicht MS-Word!
    • Suchen Sie nach folgender Zeile:
max_execution_time = 30
    • Ersetzen Sie die 30 (Sekunden) durch eine größere Zahl, z.B. 600 (Sekunden):
max_execution_time = 600
    • Speichern Sie die Datei und starten Sie den Webserver neu.

Fehler bei der Installation: The connection was reset/This site can't be reached

Install ERROR This site cant be reached.png

Haben Sie Skype installiert oder aktualisiert?

  • Skype verwendet denselben Port (80) wie Moodle.
  • Löschen Sie Skype.
  • Starten Sie Windows neu.
  • Installieren Sie Moodle.
  • Installieren Sie Skype neu.

Prüfen Sie den PC mit einem guten Antivirus-Programm

Erhöhen Sie die Zeit zur Ausführung von Skripten in Moodle

Localhost connection was restarted.png

  • Klicken Sie auf Stop Moodle.exe
  • Öffnen Sie die PHP-Konfigurationsdatei server/phpphp.ini (verwenden Sie einen einfachen Texteditor wie Notepad++, NICHT MS-Word) und erhöhen Sie dort den Wert von max_execution_time.

Edit max execution time.png

  • Setzen Sie den Wert auf z.B. 10 Minuten (600 Sekunden):

Edit max execution time to 600.png

  • Klicken Sie auf Start Moodle.exe
  • Wenn das Problem nicht gelöst ist, lesen Sie unten weiter.

Prüfen Sie, ob die Stackgröße von Apache erhöht werden muss

  • Dieses Problem wurde unter Windows 7 PCs und Laptops mit Moodle 3.4, 3.5 und 3.6 Moodle-Installationspaket für Windows beschrieben.
  • Prüfen Sie, ob Sie in den Fehler-Logdaten unter server/apache/logs/error.log eine solche Zeile finden (wobei XXXX eine Zahl ist)
child process XXXX exited with status 3221226356 -- Restarting. 

child process XXXX exited with status 3221226356.png

  • Wenn das der Fall ist, dann haben Sie ein Problem, dass häufig unter Windows auftritt, nämlich dass der Stack von Apache zu klein ist. Das Problem tritt in Zusammenhang mit PHP-Code auf, der viel Stack verbraucht.
  • Um das Problem zu beheben, öffnen Sie die Apache-Konfigurationsdatei server/apache/conf/httpd.conf in einem einfachen Texteditor wie Notepad++, NICHT in MS-WORD und fügen Sie folgende Zeilen am Ende der Datei hinzu:
<IfModule mpm_winnt_module>
  ThreadStackSize 8888888
</IfModule>
  • Starten Sie Apache neu.

Verwenden Sie Google Drive?

Wie kann ich einen Fehler im Code beheben, ohne die gesamte Moodle-Site zu aktualisieren?

Nehmen wir folgendes an:

  • Ihr Moodle läuft unter einer älteren Version.
  • Bei Ihnen tritt ein bestimmter Fehler auf.
  • Sie haben diesen Fehler als MDL-XXX im [http//tracker.moodle.org/ Bug-Tracker] gefunden und lesen dort, dass der Fehler in der neuesten Moodle-Version behoben wurde.
  • Aus bestimmten Gründen können Sie nicht die gesamte Moodle-Site aktualisieren.

Wenn Sie in der Lage sind, den Code manuell zu korrigieren, finden Sie evtl. passende Informationen im Bugtracker-Eintrag. Siehe auch diese Anleitung (englisch).

Hinweis: Wir empfehlen jedoch immer, die gesamte Moodle-Site zu aktualisieren, da in der neuen Version zusätzlich bekannte Sicherheitslücken geschlossen sind.

Siehe auch